In nonvolatile semiconductor memories, a trade-off exists between write error and read disturb that is write error in reading.
For example, in a magnetic random access memory, which is one of the nonvolatile semiconductor memories, a write current tends to decrease according to improvement of the characteristic of a magnetoresistive element that acts as a memory cell. A read current needs to be smaller than the write current, but cannot be sufficiently reduced due to the need for achieving high-speed sensing. Under the circumstances, therefore, a current difference (margin) between the write current and the read current is small.
Meanwhile, the nonvolatile semiconductor memory in general has varied write characteristics in which memory cells in a memory cell array each have a different write current. However, the write current and the read current are supplied to a memory cell through a common access transistor (same path).
If, therefore, the access transistor is designed to supply a write current that enables correct writing in a memory cell having the worst write characteristic (having the largest write current), a read current would exceed a write threshold value in reading a memory cell having the best write characteristic (having the smallest write current). This may cause the erroneous writing.
In contrast, if the access transistor is designed in such a manner that the access transistor supplies a read current that prevents the read current from exceeding the write threshold value in reading a memory cell having the best write characteristic, the write current would not exceed the write threshold value in writing a memory cell having the worst write characteristic. This may cause the write error.